# 问题: 使用之前备份字符型文件的代码,无法备份字节型文件,因为编码集异常,无法解析.
# utf8编码集是对于字符进行编码的,而图片数据是字节型文件,无法编码.解码.

# 思考1: 读取和写入纯文本类型文件和字节型文件的读写模式一样么? 不一定一样
# 之前读取和写入纯文本文件时使用的读写模式是 r w a  而读取和写入字节型文件需要使用 rb wb ab

# 思考2: 读取和写入纯文本文件可以使用rb  wb ab么?
# 读取和写入纯文本文件，可以使用 rb  wb ab， 但是读取和写入字节型文件不能使用r a w

# 1. 让用户手动键入文件名称
file_name = input('请输入您要备份的文件名称: ')

# 2. 打开用户输入的文件
# 我们打开图片文件时, 如果我们书写encoding提示不能使用uft8编码集, 如果不写,提示不能使用gbk编码
# 因为r模式就是读取字符型数据的,要么指定编码集,要么默认编码集,而图片类型数据不需要编码,所以需要使用rb读写模式
old_file = open(file_name, 'rb')

# 3. 读取该文件中的内容
# 读取出来的数据是以b开头,代表是二进制字符串.
# b'\xff\xd8\xff\xe0\'  \x代表16进制数据, 这里一共2位, 代表8位, 而8位就是一个字节.
content = old_file.read()
print(content)

# 4. 打开备份文件
new_file_name = file_name.replace('.', '[备份].')
new_file = open(new_file_name, 'wb')

# 5. 将刚刚读取到的数据写入到备份文件中
new_file.write(content)

# 6. 关闭旧文件
old_file.close()

# 7. 关闭新文件
new_file.close()
